home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / parachut.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-03-23  |  5.2 KB  |  167 lines

  1. 10  '
  2. 20  '       * * * * * *  P  A  R  A  T  R  O  O  P  E  R  * * * * * *
  3. 30  '       * * * * * *                                   * * * * * *
  4. 40  '       * * * * * *  COMPUTE! MAGAZINE, JANUARY 1985  * * * * * *
  5. 50  '       * * * * * *  PROGRAM 7:  FOR THE IBM PC/PCjr  * * * * * *
  6. 60  '       * * * * * *  VERSION DONE BY PATRICK PARRISH  * * * * * *
  7. 70  '       * * * * * *  TYPED IN BY BRIAN LETZKUS 12/84  * * * * * *
  8. 80  '       * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  9. 90   'swich to color adapter
  10. 91  DEF SEG = 0
  11. 92  POKE &H410, (PEEK(&H410) AND &HCF) OR &H10
  12. 93  SCREEN 1,0,0,0
  13. 94  SCREEN 0
  14. 95  WIDTH 40
  15. 96  LOCATE ,,6,7
  16. 100  KEY OFF
  17. 110  DEF FNSZ(X,Y)=(4+INT((X+7)/8)*Y)/2
  18. 120  GOSUB 890
  19. 130  GOSUB 250
  20. 140  GOSUB 230
  21. 150  GOSUB 330
  22. 160  GOSUB 420
  23. 170  LOCATE 10,15:PRINT "GAME OVER"
  24. 180  LOCATE 12,7:PRINT "PRESS ANY KEY TO PLAY AGAIN":DEF SEG=0:POKE 1050,PEEK(1052)
  25. 190  A$=INKEY$:IF A$="" THEN 190:IF A$=CHR$(27) THEN END
  26. 195  IF A$=CHR$(27) THEN END
  27. 200  FLAG=0
  28. 210  GOTO 130
  29. 220  '
  30. 230  SCORE=0:TROOPS=10:WT=0:WS=0:RETURN
  31. 240  '
  32. 250  CLS:SCREEN 1:DEF SEG=0:POKE 1050,PEEK(1052)
  33. 260  LOCATE 10,15:PRINT "LEVEL :"
  34. 270  LOCATE 12,15:PRINT"<N>OVICE"
  35. 280  LOCATE 14,15:PRINT"<E>xpert"
  36. 290  A$=INKEY$:IF A$="" THEN 290
  37. 300  CLS
  38. 310  RETURN
  39. 320  '
  40. 330  CLS
  41. 340  COLOR 9,1:LINE(0,0)-(320,150),1,BF
  42. 350  GOSUB 800
  43. 360  IF A$="N" OR A$="n" THEN 370 ELSE 380
  44. 370  LINE(43,140)-(60,160),2,BF:LINE(143,140)-(168,160),2,BF:LINE(251,140)-(284,160),2,BF:A=284:B=170:C=60:D=249:E=139:F=41:GOTO 390
  45. 380  LINE(46,140)-(57,160),2,BF:LINE(146,140)-(165,160),2,BF:LINE(254,140)-(281,160),2,BF:A=281:B=165:C=57:D=252:E=144:F=44
  46. 390  LOCATE 19,7:PRINT"7":LOCATE 20,7:PRINT "5":LOCATE 19,20:PRINT "5":LOCATE 20,20:PRINT "0":LOCATE 19,34:PRINT "2":LOCATE 20,34:PRINT "5"
  47. 400  RETURN
  48. 410  '
  49. 420  PLX=1
  50. 430  DEF SEG=&H40:RANDOMIZE PEEK(&H6D)
  51. 440  GOSUB 800
  52. 450  PLY=INT(RND(1)*30)+40:NY=PLY
  53. 460  GOSUB 840
  54. 470  IF JUMP=1 THEN 490
  55. 480  IF INKEY$<>"" THEN JUMP=1:PX=PLX+5:PY=PLY+10:PUT (PX,PY),TROOP%
  56. 490  IF JUMP=1 THEN GOSUB 540
  57. 500  IF TROOPS=0 THEN FLAG=1:GOTO 520
  58. 510  GOTO 460
  59. 520  RETURN
  60. 530  '
  61. 540  PUT(PX,PY),TROOP%:PX=PX+DX:PY=PY+DY:IF PX>299 THEN PX=1
  62. 550  PUT(PX,PY),TROOP%
  63. 560  T=INT(PY):IF T<=119 AND T>=116 THEN 600
  64. 570  IF PY>=BOT THEN 730
  65. 580  RETURN
  66. 590  '
  67. 600  L=PX+9
  68. 610  IF L<=A AND L>=D THEN PAD=1:GOTO 650
  69. 620  IF L<=B AND L>=E THEN PAD=2:GOTO 650
  70. 630  IF L<=C AND L>=F THEN PAD=3:GOTO 650
  71. 640  RETURN
  72. 650  PUT(PX,PY),TROOP%:PUT(PX,PY),LAND%
  73. 660  SCORE=SCORE+PAD*25
  74. 670  LOCATE 1:PRINT "         MISSION SUCCESSFUL!           "
  75. 680  FOR W=1 TO 100:GOSUB 830:NEXT W
  76. 690  PUT(PX,PY),LAND%:NY=INT(RND(1)*30)+40
  77. 700  JUMP=0:GOSUB 800
  78. 710  DEF SEG=0:POKE 1050,PEEK(1052):RETURN
  79. 720  '
  80. 730  PUT(PX,PY),TROOP%:PUT(PX,PY),SPLASH%
  81. 740  LOCATE 1:PRINT "         TROOPER MISSED TARGET         "
  82. 750  FOR W=1 TO 100:GOSUB 830:NEXT W
  83. 760  TROOPS=TROOPS-1:SCORE=SCORE-10:JUMP=0:GOSUB 800
  84. 770  PUT(PX,PY),SPLASH%:NY=INT(RND(1)*30)+40
  85. 780  DEF SEG=0:POKE 1050,PEEK(1052):RETURN
  86. 790  '
  87. 800  WS=INT(RND(1)*11):DX=WS/6:WT=INT(RND(1)*255)+75:DY=WT/150:BOT=INT(RND(1)*15)+160
  88. 810  LOCATE 1:PRINT "SCORE";TAB(6);SCORE;TAB(13);"TROOPS";TAB(19);TROOPS;TAB(26);"WS";TAB(28);WS;TAB(34);"WT";TAB(36);WT;TAB(40);" "
  89. 820  RETURN
  90. 830  '
  91. 840  PLX=PLX-1
  92. 850  IF PLX=0 THEN LINE(1,PLY)-(28,PLY+10),1,BF:PLX=280:PLY=NY
  93. 860  PUT(PLX,PLY),PLANE%,PSET
  94. 870  RETURN
  95. 880  '
  96. 890  READ X,Y:N=FNSZ(X,Y)
  97. 900  DIM PLANE%(N)
  98. 910  PLANE%(0)=X:PLANE%(1)=Y
  99. 920  FOR I=2 TO N:READ PLANE%(I):NEXT I
  100. 930  READ X,Y:N=FNSZ(X,Y)
  101. 940  DIM TROOP%(N)
  102. 950  TROOP%(0)=X:TROOP%(1)=Y
  103. 960  FOR I=2 TO N:READ TROOP%(I):NEXT I
  104. 970  READ X,Y:N=FNSZ(X,Y)
  105. 980  DIM LAND%(N)
  106. 990  LAND%(0)=X:LAND%(1)=Y
  107. 1000  FOR I=2 TO N:READ LAND%(I):NEXT I
  108. 1010  READ X,Y:N=FNSZ(X,Y)
  109. 1020  DIM SPLASH%(N)
  110. 1030  SPLASH%(0)=X:SPLASH%(1)=Y
  111. 1040  FOR I=2 TO N:READ SPLASH%(I):NEXT I
  112. 1050  TEMP$="E8G16G3L16FEDL5EFF#G":TEMP1$="A8>C16C3L16DC<AG2":TEMP3$="B8>D16D3L16C<BA>D2":T$=TEMP$+TEMP1$:S$=TEMP$+TEMP3$
  113. 1060  CLS:SCREEN 1:COLOR 9,1
  114. 1070  PLAY"MB T90 O2 L8;XT$;"
  115. 1080  A$="P":L=11:X=75:GOSUB 1220
  116. 1090  A$="A":L=13:X=91:GOSUB 1220
  117. 1100  A$="R":L=15:X=107:GOSUB 1220
  118. 1110  A$="A":L=17:X=123:GOSUB 1220
  119. 1120  A$="T":L=19:X=139:GOSUB 1220
  120. 1130  PLAY"MB T90 O2 L8;XS$;"
  121. 1140  A$="R":L=21:X=155:GOSUB 1220
  122. 1150  A$="O":L=23:X=171:GOSUB 1220
  123. 1160  A$="O":L=25:X=187:GOSUB 1220
  124. 1170  A$="P":L=27:X=203:GOSUB 1220
  125. 1180  A$="E":L=29:X=219:GOSUB 1220
  126. 1190  A$="R":L=31:X=235:GOSUB 1220
  127. 1200  FOR I=1 TO 500:NEXT I
  128. 1210  RETURN
  129. 1220  FOR I=1 TO 64:PUT(X,I),TROOP%,PSET:NEXT I:PUT(X,64),TROOP%:PUT(X,64),LAND%:LOCATE 9,L:PRINT A$:RETURN
  130. 1230  'PLANE
  131. 1240  DATA &H38,&hB,&h5555,&h5555,&h5555,&h5555,&h5555,&h5555
  132. 1250  DATA &HA555,&H5555,&H5555,&H5655,&HD5A5,&HA956,&H5555,&HA55A
  133. 1260  DATA &H5AD5,&H550A,&h5A55,&hD5A5,&h2A8,&hAAAA,&HF5AF,&HAAEA
  134. 1270  DATA &HFAFF,&HABAA,&HEAF5,&HBFAA,&HAAFA,&HF5AA,&H55D5,&HF55F
  135. 1280  DATA &H5555,&HD555,&H5755,&H55F5,&H5555,&H55D5,&H5555,&H5555
  136. 1290  DATA &H55
  137. 1300  'TROOPER
  138. 1310  DATA &H2A,&H17,&H0,&H0,&H0,&H0,&H80AA,&H0
  139. 1320  DATA &HA00,&HA8AA,&H0,&HAA00,&HAAAA,&H80,&HAA02,&HAAAA
  140. 1330  DATA &HA0,&HAA0A,&HAAAA,&HA8,&HAA0A,&HAAAA,&HA8,&HAA0A
  141. 1340  DATA &HAAAA,&HA8,&H8A02,&HA888,&HA0,&H8200,&H2000,&H80
  142. 1350  DATA &hC300,&H3000,&HC0,&H3B00,&H3B3F,&H0,&HF00,&H3C3F
  143. 1360  DATA &H0,&HB00,&H380C,&H0,&HA00,&HA8AA,&H0,&H0
  144. 1370  DATA &H2A,&H0,&H0,&H2A,&H0,&H0,&H2A,&H0
  145. 1380  DATA &H0,&H22,&H0,&H0,&H22,&H0,&H0,&H22
  146. 1390  DATA &H0,&H0,&H22,&H0,&H0,&H0,&H0,&H0
  147. 1400  'LAND
  148. 1410  DATA &H22,&H17,&H0,&H0,&H0,&H0,&H0,&H0
  149. 1420  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  150. 1430  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  151. 1440  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  152. 1450  DATA &H0,&H0,&H0,&HC00F,&H0,&H8F00,&HC8,&H0
  153. 1460  DATA &H883,&H0,&HAA00,&HA8,&H0,&H800A,&H0,&HA00
  154. 1470  DATA &H80,&H0,&H800A,&H0,&H800,&H80,&H0,&H8008
  155. 1480  DATA &H0,&H800,&H80,&H0
  156. 1490  'SPLASH
  157. 1500  DATA &H30,&H17,&H0,&H0,&H0,&H0,&H0,&H0
  158. 1510  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  159. 1520  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  160. 1530  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  161. 1540  DATA &H0,&H0,&H0,&H0,&H5555,&H0,&H5500,&H5555
  162. 1550  DATA &H55,&H5505,&HFFFF,&H5055,&HFF15,&HFFFF,&H54FF,&HFF17
  163. 1560  DATA &HFFFF,&HD4FF,&HFF55,&HFFFF,&H55FF,&H5515,&HFD7F,&H5455
  164. 1570  DATA &H5505,&H5555,&H5055,&H5500,&H5555,&H55,&H300,&H57D5
  165. 1580  DATA &HC0,&H300,&HFFFF,&HC0,&H0,&HFC3F,&H0,&H0
  166. 5590  '====== END OF PARACHUT.BAS =====
  167.